package com.common.retrofit.service;

import com.common.Entity.AddressEntity;
import com.common.Entity.AllRecordEntity;
import com.common.Entity.ArticalEntity;
import com.common.Entity.ChongZhiEntity;
import com.common.Entity.DuoBaoDetailsEntity;
import com.common.Entity.DuoBaoWangQiEntitiy;
import com.common.Entity.DuobaoDaShangBean;
import com.common.Entity.FenLeiListEntity;
import com.common.Entity.HomeEntity;
import com.common.Entity.HomeHeadEntity;
import com.common.Entity.HtmlEntity;
import com.common.Entity.JiSuanEntity;
import com.common.Entity.JifenEtity;
import com.common.Entity.JingPaiEntity;
import com.common.Entity.JingPiaJieXiaoEntity;
import com.common.Entity.MessageListEntity;
import com.common.Entity.PhotoDetailEntity;
import com.common.Entity.RecentDealEntity;
import com.common.Entity.SearchEntity;
import com.common.Entity.ShareEntity;
import com.common.Entity.ShareOrderEntity;
import com.common.Entity.SortEntity;
import com.common.Entity.UserEntity;
import com.common.Entity.WechatLoginEntity;
import com.common.Entity.ZhongJiangEntity;
import com.common.retrofit.entity.resultImpl.HttpRespBean;
import com.common.retrofit.method.JiFenShopListEntity;

import java.util.ArrayList;

import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
import rx.Observable;

/**
 * Create by leo
 * 创建日期：2018/5/15
 * 描述：
 */

public interface DuoBaoService {
    @FormUrlEncoded
    @POST("goodCategory")
    Observable<HttpRespBean<SortEntity>> goodCategory (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid, @Field("hashid") String hashid );
    @FormUrlEncoded
    @POST("saidanList")
    Observable<HttpRespBean<ShareOrderEntity>> saidanList (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                           @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("page") int page
            , @Field("showtype") int showtype );
    @FormUrlEncoded
    @POST("messageList")
    Observable<HttpRespBean<MessageListEntity>> messageList  (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                              @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("page") int page
             );
    @FormUrlEncoded
    @POST("delMessage")
    Observable<HttpRespBean<Object>> delMessage   (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("mid") String mid
    );

    @FormUrlEncoded
    @POST("appIndexList")
    Observable<HttpRespBean<HomeEntity>> appIndexList   (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                         @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("page") int page
            , @Field("sorttype") int sorttype
            , @Field("rule") int rule
    );

    @FormUrlEncoded
    @POST("appIndex")
    Observable<HttpRespBean<HomeHeadEntity>> appIndex    (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid

    );
    @FormUrlEncoded
    @POST("dbGoodsList")
    Observable<HttpRespBean<JiFenShopListEntity>> dbGoodsList     (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("sorttype") int sorttype

    );
    @FormUrlEncoded
    @POST("newestDeal")
    Observable<HttpRespBean<RecentDealEntity>> newestDeal      (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("page") int page

    );
    @FormUrlEncoded
    @POST("articleList")
    Observable<HttpRespBean<ArticalEntity>> articleList      (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("page") int page

    );
    @FormUrlEncoded
    @POST("openList")
    Observable<HttpRespBean<ZhongJiangEntity>> openList  (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                          @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("page") int page
    );
    @FormUrlEncoded
    @POST("scoreList")
    Observable<HttpRespBean<JifenEtity>> scoreList   (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                      @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("page") int page
    );

    @FormUrlEncoded
    @POST("userDetail")
    Observable<HttpRespBean<UserEntity>> userDetail    (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid

    );

    @FormUrlEncoded
    @POST("userAddress")
    Observable<HttpRespBean<AddressEntity>> userAddress   (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                           @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("page") int page
    );

    @FormUrlEncoded
    @POST("delAddress")
    Observable<HttpRespBean<Object>> delAddress    (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                           @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("addressid") int addressid
    );

    @FormUrlEncoded
    @POST("setDefault")
    Observable<HttpRespBean<Object>> setDefault     (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                    @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("id") int addressid
    );

    @FormUrlEncoded
    @POST("addAddress")
    Observable<HttpRespBean<Object>> addAddress     (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                    @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("username") String username
            , @Field("phone") String phone
            , @Field("area") String area
            , @Field("address") String address
    );

    @FormUrlEncoded
    @POST("updateAddress")
    Observable<HttpRespBean<Object>> updateAddress      (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                     @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("username") String username
            , @Field("phone") String phone
            , @Field("area") String area
            , @Field("address") String address
            , @Field("id") int addressid
    );

    @FormUrlEncoded
    @POST("getScore")
    Observable<HttpRespBean<Object>> getScore     (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                    @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("rewardnum") int rewardnum
            , @Field("articleid") String articleid
    );

    @FormUrlEncoded
    @POST("updateAddress")
    Observable<HttpRespBean<Object>> updateAddress     (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("useraddress") String useraddress

    );
    @FormUrlEncoded
    @POST("updateNickname")
    Observable<HttpRespBean<Object>> updateNickname     (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("newname") String newname

    );

    @FormUrlEncoded
    @POST("jingpaiGoods")
    Observable<HttpRespBean<JingPaiEntity>> jingpaiGoods   (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                            @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("gid") String gid
            , @Field("vid") String vid
            , @Field("fvid") String fvid
    );
    @FormUrlEncoded
    @POST("allAuction")
    Observable<HttpRespBean<AllRecordEntity>> allAuction    (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                             @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("gid") String gid
            , @Field("vid") String vid
            , @Field("fvid") String fvid
            , @Field("page") int page

    );
    @FormUrlEncoded
    @POST("goodPicInfo")
    Observable<HttpRespBean<PhotoDetailEntity>> goodPicInfo    (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("gid") String gid
    );

    @FormUrlEncoded
    @POST("pastPeriod")
    Observable<HttpRespBean<JingPiaJieXiaoEntity>> pastPeriod       (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("page") int page
            , @Field("gid") String gid

    );
    @FormUrlEncoded
    @POST("buyAuction")
    Observable<HttpRespBean<Object>> buyAuction     (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("gid") String gid
            , @Field("fvid") String fvid
            , @Field("vid") String vid

    );

    @FormUrlEncoded
    @POST("duobaoGoods")
    Observable<HttpRespBean<DuoBaoDetailsEntity>> duobaoGoods    (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                                  @Field("uid") int uid, @Field("hashid") String hashid
                    , @Field("gid") String gid
                    , @Field("vid") String vid
                    , @Field("fvid") String fvid
            );

    @FormUrlEncoded
    @POST("duobaoPastPeriod")
    Observable<HttpRespBean<DuoBaoWangQiEntitiy>> duobaoPastPeriod        (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("page") int page
            , @Field("gid") String gid

    );

    @FormUrlEncoded
    @POST("duobaoCalculate")
    Observable<HttpRespBean<JiSuanEntity>> duobaoCalculate     (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                                @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("gid") String gid
            , @Field("vid") String vid
            , @Field("fvid") String fvid
    );

    @FormUrlEncoded
    @POST("seeGood")
    Observable<HttpRespBean<FenLeiListEntity>> seeGood    (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                           @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("page") int page
            , @Field("cid") String cid
    );

    @FormUrlEncoded
    @POST("searchJingpai")
    Observable<HttpRespBean<SearchEntity>> searchJingpai   (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                            @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("page") int page
            , @Field("search") String search
    );
    @FormUrlEncoded
    @POST("rechargeList")
    Observable<HttpRespBean<ChongZhiEntity>> rechargeList    (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                              @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("page") int page
    );

    @FormUrlEncoded
    @POST("share")
    Observable<HttpRespBean<ShareEntity>> share      (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                      @Field("uid") int uid, @Field("hashid") String hashid

    );


    @FormUrlEncoded
    @POST("shareSuccess")
    Observable<HttpRespBean<Object>> shareSuccess       (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                      @Field("uid") int uid, @Field("hashid") String hashid

    );

    @FormUrlEncoded
    @POST("quickLogin")
    Observable<HttpRespBean<WechatLoginEntity>> quickLogin       (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal
            , @Field("login_type") int login_type
            , @Field("token") String token
            , @Field("nickname") String nickname

    );

    @FormUrlEncoded
    @POST("selectScore")
    Observable<HttpRespBean<ArrayList<DuobaoDaShangBean>>> selectScore   (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal,
                                                                          @Field("uid") int uid, @Field("hashid") String hashid
            , @Field("gid") String gid
    );

    @FormUrlEncoded
    @POST("buyLuckyNum")
    Observable<HttpRespBean<Object>> buyLuckyNum      (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("gid") String gid
            , @Field("fvid") String fvid
            , @Field("num") String num

    );
    @FormUrlEncoded
    @POST("bindMobile")
    Observable<HttpRespBean<Object>> bindMobile       (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("mobile") String mobile
            , @Field("checkcode") String checkcode

    );
    @FormUrlEncoded
    @POST("addSaidan")
    Observable<HttpRespBean<Object>> addSaidan       (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid
            , @Field("title") String title
            , @Field("goodname") String goodname
            , @Field("fvid") String fvid
            , @Field("content") String content
            , @Field("imgid") String imgid
            , @Field("fabutype") int fabutype

    );

    @FormUrlEncoded
    @POST("h5")
    Observable<HttpRespBean<HtmlEntity>> getHtml    (@Field("time") String time, @Field("hash") String hash, @Field("apiId") String apiId, @Field("terminal") String terminal, @Field("uid") int uid
            , @Field("hashid") String hashid
    );



}
